真是的都開始打戰某世界才想到今天的文還沒寫。
昨天有提到可以把 stdout
的結果導向檔案存起來,前面也提到我們可以產生變數儲存資料,那有沒有辦法把指令執行的結果,存進變數呢?
當然有,這時候可以用 Command Substitution
(這玩意兒的中文翻譯好亂,有人叫他 小指令
、有人叫他 子指令
,但是不管哪個中文都很怪)。
用法如下:
MYVAR=$(cat myMessage.txt)
輸入這個指令後, Shell 會把 $(cat myMessage.txt)
裡面的指令先執行起來,把 stdout
的資料記錄下來,帶入後再執行 MYVAR=HELLO_WORLD
。
所以當然,如果不想存進變數直接用,也可以直接 echo $(cat myMessage.txt)
。
什麼你說要打 $()
太多字,好吧,那下面的用法簡潔一點了吧:
MYVAR=`cat myMessage.txt`
另外注意,因為 Bash 的設計關係,在 Bash 的變數內容不允許有換行; Zsh 的變數內容則是允許有換行,之後講迴圈,這個差異就非常麻煩惹。
至於你說這對開發程式有什麼用處嗎?有啊, curl
帶 User-Agent 或是 JWT 的時候,這樣不就方便多了嗎!
好今天就這樣,我要巡洋艦妙高跟巡洋艦高雄!!
我是誰?
我是 dd-han ,可以叫我呆翰,是國立臺中科技大學的延畢生 與 創科資訊的時習生。